package com.cspm.ahjy.bc.office.word.util;

import com.cspm.ahjy.bc.office.enums.FileTypeEnum;
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;

/**
 * word文档转换
 * @author ServerZhang
 * @date 2017年9月28日
 */
public class WordConvertUtil {

	/**
	 * 转换成xml格式
	 * @param filePath
	 * @param xmlFilePath
	 * @author ServerZhang
	 * @date 2017年9月28日
	 */
	public static Boolean word2Xml(String filePath, String xmlFilePath) {
		try {
			ActiveXComponent app = new ActiveXComponent("Word.Application"); // 启动word
			app.setProperty("Visible", new Variant(false)); // 为false时设置word不可见，为true时是可见要不然看不到Word打打开文件的过程
			Dispatch docs = app.getProperty("Documents").toDispatch();
			// 打开编辑器
			Dispatch doc = Dispatch.invoke(
					docs,
					"Open",
					Dispatch.Method,
					new Object[] { filePath, new Variant(false),
							new Variant(true) }, new int[1]).toDispatch(); // 打开word文档
			Dispatch.call(doc, "SaveAs", xmlFilePath, FileTypeEnum.getBySuffix(".xml").getTypeNum());// xml文件格式宏11
			Dispatch.call(doc, "Close", false);
			app.invoke("Quit", 0);
			System.out.println("---------word转换完成--------");
		} catch (Exception e) {
			e.printStackTrace();
		}
		return true;
	}
	
}
